;; Test vector procedures
(display "Testing vector procedures...\n")

;; Create test vectors using procedures
(define v1 (vector 1 2 3))
(define v2 (make-vector 3))
(define v3 (make-vector 2 10))
(define v4 (vector 1 2 3 4))
(define v5 (vector 'a 'b 'c 'd))
(define v6 (make-vector 3))

;; Test vector? predicate
(display "vector? (vector 1 2 3): ")
(write (vector? v1))
(display "\n")

(display "vector? '(): ")
(write (vector? '()))
(display "\n")

;; Test make-vector
(display "make-vector 3: ")
(write v2)
(display "\n")

(display "make-vector 2 10: ")
(write v3)
(display "\n")

;; Test vector
(display "vector 1 2 3: ")
(write v1)
(display "\n")

;; Test vector-length
(display "vector-length (vector 1 2 3 4): ")
(write (vector-length v4))
(display "\n")

;; Test vector-ref
(display "vector-ref (vector 'a 'b 'c 'd) 2: ")
(write (vector-ref v5 2))
(display "\n")

;; Test vector-set!
(vector-set! v5 1 'x)
(display "After vector-set! (vector 'a 'b 'c 'd) 1 'x: ")
(write v5)
(display "\n")

;; Test vector->list
(display "vector->list (vector 1 2 3): ")
(write (vector->list v1))
(display "\n")

;; Test list->vector
(display "list->vector (quote (1 2 3)): ")
(write (list->vector (quote (1 2 3))))
(display "\n")

;; Test vector-fill!
(vector-fill! v6 'y)
(display "After vector-fill! (make-vector 3) 'y: ")
(write v6)
(display "\n")

(display "Vector procedures test completed.\n")